Il percorso da una struct a un Tipo di Dato Astratto (TDA) rappresenta un cambiamento fondamentale nel pensiero progettuale. Mentre una struct è spesso una raccolta passiva di variabili, un TDA è un'entità attiva che gestisce il proprio stato attraverso Incapsulamento.
1. L'intento del Progetto
In C++, la parola chiave class indica un impegno verso Astrazione dei Dati. Questa strategia separa l' interfaccia (ciò che l'utente può fare) dal implementazione (come i dati sono memorizzati). Proteggendo le variabili interne, il programmatore garantisce che l'oggetto mantenga la propria coerenza interna.
2. Sottigliezze Tecniche
Tecnicamente, la sola differenza tra una struct e una class in C++ è il livello di accesso predefinito. I membri di una struct sono pubblici per impostazione predefinita, riflettendo il loro ruolo di archiviatori aperti di dati. I membri di una class sono privati per impostazione predefinita, riflettendo il loro ruolo come entità gestite.
$$\text{TDA} = \text{Dati} + \text{Operazioni}$$